<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title>菜鸟教程(runoob.com)</title>
</head>
<body>

<p id="demo"></p>
<script>
    var x = 10;
    var y = "10";
    var element = document.getElementById("demo");
    var temp = element.innerHTML;
    temp = '10 == "10" ' + Boolean(x == y);//这里返回true
    temp +=  '<br>10 === "10" ' +　Boolean(x === y);//这里返回false
    temp += "<br>hello \
    \world";


//    switch 语句会使用恒等计算符(===)进行比较:
    switch(x) {
        case 10: console.log("Hello");temp += "<br>switch使用===进行判断";
    }

    if (x == 19);{
        temp += "<br><br>if后面紧跟;，所以代码永远执行，if无效";
    }

    temp += "<br><br>如果你使用名字作为索引，当访问数组时，JavaScript 会把数组重新定义为标准对象，数组的方法及属性将不能再使用，否则会产生错误。"
    var person = [];
    person["firstName"] = "John";
    person["lastName"] = "Doe";
    person["age"] = 46;
    temp += 'person[0] '+ person[0] + " ," + 'person.length ' + person.length;

    temp += "<br><br>在 JavaScript 中, null 用于对象, undefined 用于变量，属性和方法。对象只有被定义才有可能为 null，否则为 undefined。"
    temp += '<br>正确写法：if (typeof myObj !== "undefined" && myObj !== null) ';

    temp += "<br><br>在每个代码块中 JavaScript 不会创建一个新的作用域，一般各个代码块的作用域都是全局的。"
    for (var i = 0; i < 10; i++) {
        console.log(i);
    }
    temp += '<br>从上面的for循环取出i，i='+i;

    temp +=
        "<br><br>建议在运算符或者逗号后换行。比如这一行，就是在=号后，换行了";
    element.innerHTML = temp;
</script>

</body>
</html>